if( !xu )

/**
 * eGovXF UI Framework for jQuery v1.6.1<br>
 *
 * Licensed under the APACHE License:
 *
 * @author nayasis
 * @version 5.0
 * @since 2011.03.01
 */
var xu = {};

/**
* O: eGovXF UI 공통상수
* @author jungHwasu, 2011.03.09
* @classDescription eGovXF UI 공통상수
*/
xu.c = {

  /** 프레임워크 버전 */
  VERSION : "0.5",

  /** CONTEXT ROOT */
  ROOT_PATH : "",

  /** 화면명 */
  JSP_NAME : "",

  /** 세션만료체크 (종료시 몇 초 전) */
  SESSION_CHK : 5 * 60,

  /** 에러페이지 URL 경로 (세션중단) */
  URL_NO_SESSION : "/afs/frm/login/loginPopup.jsp",

  /** 토큰값 */
  TOKEN  : "",

  /** 웹페이지 기본 인코딩셋 */
  CHAR_SET : "UTF-8",

  /** 로그인한 사용자 ID */
  USER_ID  : "",
 
  // 콤보
  COMBO : {
    LABEL_ALL    : "전체",
    LABEL_SELECT : "선택"
  },

  // 각종 ID 모음
  ID : {
    LOADING_BAR : "#_xu_LoadingBar",
    WIN_FORM    : "#_xu_winForm",
    WIN_TIP     : "#_xu_tip",
    DEBUG_PANEL : "#_xu_logPanel",
    DEBUG_TXT   : "#_xu_logPanelDesc",
    FILE_DN     : "#_xuDownload"
  },

  // 각종 CLASS 모음
  CLASS : {
    FOCUS   : "xuFocus",
    INVALID : "xuInvalid",
    TIP     : "xuTip"
  },

  // 서버요청
  REQ : {
    TYPE_FORM : "do",
    TYPE_JSON : "ado",
    TYPE_XML  : "kxml",
    TYPE_CGI  : "cgi",
    DATA_JSON : "jsonp",
    DATA_XML  : "xml"
  },

  // 테이블 관련 공통상수
  TABLE : {
    NAVI_PAGE        : "_duNaviPage",
    NAVI_PAGE_CNT    : "_duNaviPageCnt",
    NAVI_PAGE_SIZE   : "_duNaviPageSize",
    NAVI_ROW         : "_duNaviRow",
    NAVI_ROW_CNT     : "_duNaviRowCnt",
    NAVI_ROW_SIZE    : "_duNaviRowSize",
    NAVI_PARAM       : "_duNaviParam",
    NAVI_URL         : "_duNaviUrl",
    NAVI_RES         : "_duNaviRes",
    NAVI_PARAM_GUBUN : "_duDiv_",
    NAVI_TARGET_ROW  : "xuiTargetRow",
    NAVI_ORDER_BY    : "xuiOrderBy",
    NO_DATA          : "조회결과가 존재하지 않습니다.",
    NOT_ROW          : "notRow",
    PAGING_DATATYPE  : "egovxui",
    DEFAULT_DATATYPE : "local",
    RELOAD           : "reloadGrid",
    UPDATEPAGER      : "updatepager",
    DATALLOADING     : "dataloading",
    PAGE             : "page",
    PREFIX           : "tab",
    FIELD            : "_field",
    PREFIX_FIELD     : "c",
    CELL_WIDTH       : "width",
    CELL_SHOW_FLAG   : "flag"
  },

  // 트리 관련 공통상수
  TREE : {
    ROOT_NODE        : "root"
  },
  // window
  WINDOW : {
    ID_SEQ      : "_autoGenId_",
    PARAM_TOKEN : "_metaToken"
  },

  // REDRAW 관련 공통상수
  REDRAW : {
    DIV_FOCUS : "_duRedrawFocus_"
  },

  // Date
  DATE : {
    FORMAT         : "YYYY.MM.DD", // 기본 날짜형식
    SERVER_DATE    : null,
    LOCAL_DATE     : null,
    PICKER_BTN_IMG : "/htdocs/css/com/egovXUi/images/calendar.gif"
  },

  // Biz 관련 공통상수
  BIZ : {
    serverDate      : null,
    SESSION_VALID   : null,
    SESSION_TIMEOUT : 30 * 60
  },

  // 정규식처리 관련 공통상수 (번역 대상에 포함되지 않음)
  REG_PTN : {

    TRIM : /(^ *)|( *$)/g,
    LTRIM : /(^ *)/g,
    RTRIM : /( *$)/g,
    INNER_TRIM : / +/g,
    INNER_SPACE : / /g,
    NUM : /[0-9]/g,
    NOT_NUMERIC : /[^0-9\.]/g,
    NOT_NUM : /[^0-9]/g,
    NOT_NUM_PARSE : /[^0-9\.-]/g,
    ENG : /[a-zA-Z]/g,
    NOT_ENG : /[^a-zA-Z]/g,
    KOR : /[ㄱ-ㅎㅏ-ㅣ가-힣]/g,
    NOT_KOR : /[^ㄱ-ㅎㅏ-ㅣ가-힣]/g,
    NOT_NUM_OR_ENG : /[^0-9a-zA-Z]/g,
    MONEY : /(\d)(?=(?:\d{3})+(?!\d))/g,

    HAS_HTML : /<\/?[a-zA-Z][a-zA-Z0-9]*[^<>]*>/,
    IS_NUM : /^[0-9]+$/,
    IS_NOT_NUM : /^[^0-9]+$/,
    IS_NOT_KOR : /^[^ㄱ-ㅎㅏ-ㅣ가-힣]+$/,
    IS_ENG : /^[a-zA-Z]+$/,
    IS_NUM_ENG : /^[0-9a-zA-Z]+$/,
    IS_KOR : /^[ㄱ-ㅎㅏ-ㅣ가-힣]+$/,
    IS_NUM_KOR : /^[0-9ㄱ-ㅎㅏ-ㅣ가-힣]+$/,
    IS_RRN : /^(\d{2})(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-9]|3[0-1])(|\D)[1-4](\d{6})$/,
    IS_FGN : /^(\d{2})(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-9]|3[0-1])(|\D)[5-8](\d{6})$/,
    IS_EMAIL : /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/,
    IS_HOME_PHONE : /^(0[2-8][0-5]?)(|\D)([1-9]{1}[0-9]{2,3})(|\D)([0-9]{4})$/,
    IS_CELL_PHONE1 : /^(01[1346-9])(|\D)([1-9]{1}[0-9]{2,3})(|\D)([0-9]{4})$/,
    IS_CELL_PHONE2 : /^(010)(|\D)([2-9]{1}[0-9]{3})(|\D)([0-9]{4})$/,

    UNMASK : [ "X", "9", "*" ],

    MASK_CHR_STR : "[a-zA-Zㄱ-ㅎㅏ-ㅣ가-힣]",
    MASK_NUM_STR : "[0-9]",
    MASK_ALL_STR : ".",

    MASK_CHR : /[a-zA-Zㄱ-ㅎㅏ-ㅣ가-힣]/,
    MASK_NUM : /[0-9]/,
    MASK_ALL : /./,

    HAN_1ST : ['ㄱ','ㄲ','ㄴ','ㄷ','ㄸ','ㄹ','ㅁ','ㅂ','ㅃ','ㅅ','ㅆ','ㅇ','ㅈ','ㅉ','ㅊ','ㅋ','ㅌ','ㅍ','ㅎ' ],
    HAN_2ND : ['ㅏ','ㅐ','ㅑ','ㅒ','ㅓ','ㅔ','ㅕ','ㅖ','ㅗ','ㅘ','ㅙ','ㅚ','ㅛ','ㅜ','ㅝ','ㅞ','ㅟ','ㅠ','ㅡ','ㅢ','ㅣ'],
    HAN_3RD : ['','ㄱ','ㄲ','ㄳ','ㄴ','ㄵ','ㄶ','ㄷ','ㄹ','ㄺ','ㄻ','ㄼ','ㄽ','ㄾ','ㄿ','ㅀ','ㅁ','ㅂ','ㅄ','ㅅ','ㅆ','ㅇ','ㅈ','ㅊ','ㅋ','ㅌ','ㅍ','ㅎ'],

    HAN_JOSA : ['은','는','이','가','을','를'],

    HAN_JOSA_MERGE_1 : /(은\W는\W|는\W은\W)/,
    HAN_JOSA_MERGE_2 : /(이\W가\W|가\W이\W)/,
    HAN_JOSA_MERGE_3 : /(을\W를\W|를\W을\W)/

  },

  // 파일
  FILE : {

    URL_FILE_EXIST : "/afs/frm/fileMgr/checkFileExist.kajx",
    URL_DOWNLOAD   : "/afs/frm/fileMgr/downloadFile.kfrm",
    URL_UPLOAD     : "/afs/frm/fileMgr/uploadFile.kajx",
    URL_SWF        : "/htdocs/js/com/uploadify/uploadify.swf",
    URL_CANCEL_IMG : "/htdocs/css/com/uploadify/cancel.png",

    BTN_PICKER_TXT : "파일선택",
    BTN_UPLOAD_TXT : "전송",
    MAX_FILE_CNT   : 1,
    SIZE_LIMIT     : 10 * 1024,
    FILE_EXT       : "*.*",
    FILE_DENY_EXT  : ""

  },

  // URL 복원
  URL_RECOVERY : {
    ID  : "", // 화면 복원 ID
    KEY : "_recoveryId_"
  },

  // Validator
  VALIDATOR : {
    SHOW_TIP       : false, // 정합성 검사결과 실시간 표시여부
    SHOW_ALERT     : false, // 정합성 검사결과 알림창 출력여부
    CHECK_INTERVAL : 300,  // 실시간 검사 체크주기 (msec)
    CHECK_CHRSET   : "EUC-KR", // 문자열 검사에 사용될 캐릭터셋 (DB 캐릭터셋과 동일하게 맞춰준다.)
    NEW_LINE       : ( $.browser.msie ) ? "\u000D\u000A" : ", ",  // 줄바꾸기
    RULE_DESC      : ( $.browser.msie ) ? "\u000D\u000A---------\u000D\u000A" : "\u000D\u000A : \u000D\u000A"
  },

  // logger
  LOGGER : {
    print  : true,
    dialog : true,
    window : {
      width    : 400,
      height   : 200,
      fontSize : 11
    }
  },

  // AJAX 설정
  AJAX : {
    debug    : false,     // 디버깅모드
    focus    : true,      // 송신 후 버튼 Focus 복원기능
    method   : "POST",    // GET/POST
    loading  : true,      // 기본 로딩바 표시여부
    dataType : "json",    // 데이터 전송타입 (json/jsonp)
    sync     : false,     // 동기전송 여부
    timeout  : 600 * 1000 // 조회대기시간 (sec * 1000)
  }

}

/**
 * 날짜입력창 (datePicker) 설정
 * @author DaeKwon Kang (ncrash.dk@gmail.com)
 */
jQuery(function($){
  $.datepicker.regional['ko'] = {
    closeText       : '닫기',
    prevText        : '이전달',
    nextText        : '다음달',
    currentText     : '오늘',
    monthNames      : ['1월','2월','3월','4월','5월','6월','7월','8월','9월','10월','11월','12월'],
    monthNamesShort : ['1월','2월','3월','4월','5월','6월','7월','8월','9월','10월','11월','12월'],
    dayNames        : ['일','월','화','수','목','금','토'],
    dayNamesShort   : ['일','월','화','수','목','금','토'],
    dayNamesMin     : ['일','월','화','수','목','금','토'],
    dateFormat      : xu.c.DATE.FORMAT.replace( "YYYY", "YY" ).toLowerCase(),
    firstDay        : 0,
    isRTL           : false,
    changeMonth     : true,
    changeYear      : true,
    showButtonPanel : false,
    showOn          : "button",
    buttonText      : "달력으로 날짜입력",
    buttonImageOnly : true,
    duration        : ""
  };
  $.datepicker.setDefaults($.datepicker.regional['ko']);
});